//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;

using CommunityServer.Components;

namespace CommunityServer.Controls {
	
	/// <summary>
	/// A label which displays resource text by name.
	/// </summary>
	public class ResourceLabel : WebControl {
		
		protected override ControlCollection CreateControlCollection() {
			return new EmptyControlCollection( this );
		}

		/// <summary>
		/// Gets or sets the name of the resource file to pull from
		/// </summary>
		[
		Bindable(true),
		Category( "Appearance" ),
		Description( "Gets or sets the name of the resource file." ),
		DefaultValue( null ),
		]
		public virtual String ResourceFile 
		{
			get 
			{
				Object state = ViewState["ResourceFile"];
				if ( state != null ) 
				{
					return (String)state;
				}
				return "";
			}
			set 
			{
				ViewState["ResourceFile"] = value;
			}
		}


		/// <summary>
		/// Gets or sets the name of the resource to dispaly.
		/// </summary>
		[
		Bindable(true),
		Category( "Appearance" ),
		Description( "Gets or sets the name of the resource to dispaly." ),
		DefaultValue( "" ),
		]
		public virtual String ResourceName {
			get {
				Object state = ViewState["ResourceName"];
				if ( state != null ) {
					return (String)state;
				}
				return "";
			}
			set {
				ViewState["ResourceName"] = value;
			}
		}


		protected override void RenderContents(HtmlTextWriter writer) {
#if DEBUG
			try {
#endif
				writer.Write( ResourceManager.GetString( ResourceName, ResourceFile ));
#if DEBUG			
			} catch ( Exception ex ) {
				writer.Write( "ResourceName: " + this.ResourceName + " Not Found" );
				System.Diagnostics.Debug.WriteLine( ex.ToString() );
			}
#endif
		}


	}
}
